<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 具名函数：有名字的函数
    // 具名函数的调用可以写在函数声明之前，也可以写在函数声明之后
    fn1()
    function fn1(){
      console.log('我是具名函数')
    }
    fn1()
    // 匿名函数：没有名字的函数
    // 1. 函数表达式，必须先声明，后调用
    let fn=function(){
      console.log('我是匿名函数')
    }
    fn()

    // 立即执行函数，立即调用，立即执行，需要加`;`结束
    // 第一中写法
    (function(a,b){
      console.log(a+b)
      console.log('我是立即执行函数')
    })(1,2);
    // 第二种写法
    (function(a,b){
      console.log(a+b)
      console.log('我是立即执行函数')
    }(1,2));
  </script>
</body>
</html>